# 简单点例子，做一个学生管理系统
"""
list1 = []
while True:
    print("请输入学生的姓名、学号、年龄、班级")
    # ..
    """

# 文件的读取 利用赋值f对象打开的，一定要记得关闭
# 第一个是路径，第二个是编码
"""
f = open(r"student_info.txt",encoding='utf-8')
print(f.read())
f.close()
"""

# with open的方式打开文件，读取。不需要关闭文件
"""
with open('student_info.txt',encoding='utf-8') as f:
    print(f.read())
"""

# 写入文件内容,w的方式是写入文件，但是会覆盖之前的内容
"""
with open('student_info.txt',encoding='utf-8',mode='w') as f:
    for i in range(10):
        f.write(f"{i}侯雯中\n")
"""
"""
# 如果之前的文件不存在，w写入会先创建文件，再写入
with open('student.txt',encoding='utf-8',mode='w') as f:
    f.write("侯雯中")
"""
# 基于上一次的文件指针，追加内容
"""
with open('student.txt','a',encoding='utf-8') as f:
    f.write('\n侯雯中plus')
"""
# 用with打开的话，默认是r模式，读。读取不写模式也ok
"""
with open('student.txt','r',encoding='utf-8') as f:
    # print(f.read())
    # print(f.readline(2))
    print(f.readlines())
    # f.write("写入内容") # 文件打开模式错误了
"""
"""
def student(name,age):
    print(f"我叫做：{name}，今年：{age}")
student(age='18',name='侯雯中')
student('侯雯中',18)
"""
# 可读可写模式（了解）
# 先读，后写。不可以先写入，后读取
"""
with open('student_info.txt','r+t',encoding='utf-8') as f:
    print(f.read())
    f.write("\n侯雯中plus")
"""
# 可读、可写模式，w+t
"""
with open('可读可写w+t模式.txt','w+t',encoding='utf-8') as f:
    f.write("侯雯中")
    # print(f.read())  # 直接读，无法读取
    f.seek(0,0)
    print(f.readline())
"""
# 文件修改 ，先拿到所有的数据，再去覆盖写入
# step1：先拿到所有数据

with open('可读可写w+t模式.txt','r',encoding='utf-8') as f:
    all_data = f.read()
    # 做判断，拿到你要改的那一行
# step2：覆盖写入
with open("可读可写w+t模式.txt",'w',encoding='utf-8') as f:
    f.write(all_data.replace('我叫金巴，今年19岁','我叫金秀，今年19岁'))







